home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / scope / 001-025 / scopedisk13 / m2du360 / m2du360.docs < prev    next >
Text File  |  1995-03-18  |  18KB  |  485 lines

  1. M2Du 3.60
  2. ~~~~~~~~~
  3.  - By Greg Browne - 1821 Ocotillo, Alamogordo NM 88310  (505) 437-0807
  4.  
  5. DirUtil in Modula-2 - 50-1000 files CLI or WB
  6.  Last modified - 6/10/88
  7.  
  8. CONTACT:
  9.  
  10. CIS [72250,106]
  11. Alamo FastKode ROS (505)-437-2280 (24 hr 300-9600 baud)
  12. New Horizons (505)-437-9117 (7pm-8am 300-2400)
  13.  
  14. DISCLAIMER:
  15.  I am not responsible for anything! Use at your own risk.
  16.  
  17. P.D. NOTICE:
  18.  This executible is placed in the public domain. FREE!
  19.  
  20. THANKS:
  21.  Richie Bielack, Martin Taillefer, Matt Dillon, Brett Blevins,
  22.  Jim Kunzman, Chuck Layton, Rick Sinars and others for various reasons.
  23.  
  24. WARNING -  *MAJOR* CHANGES BACK IN 3.42.
  25.  
  26. +++++++++++++++++
  27. GENERAL OPERATION
  28. +++++++++++++++++
  29.  
  30. CLITail:
  31. Accepts arguments (not in WB yet):
  32.   i = Incr max files-per-dir by 50 (multiple 'i' ok).
  33.   d = Decr max files-per-dir by 50 (multiple 'd' ok).
  34.  
  35. COMMAND ACTIVATION:
  36. LEFT & RIGHT mouse button press & RELEASE over gadget (or name) to register.
  37.  
  38. CONFIRMING:
  39. Messy & destructive commands need confirmation.  When asked to "HIT (name)
  40. again", USE THE LEFT MOUSEBUTTON.  The right mousebutton will NOT confirm
  41. actions, even those started with the right mousebutton.
  42.  
  43.  
  44. INTERRUPTING:
  45. Multi-actions interrupt by clicking a gadget (including filewindow) with the
  46. LEFT mousebutton.  Stop is AFTER current pass is complete. When the alternate
  47. pointer is visible, clicks are ONLY interrupts.
  48.  
  49. Getting files interrupts with a click in the filewindow. If directory has
  50. too many files, you will be warned.
  51.  
  52. EXECUTE/RUN:
  53. DO, EDIT, & SHOWIFF execute sequentially (prevent disk grinding) until the
  54. last (or only) action. Then RUN >NIL: is used to free up Du. When commands
  55. finish, they do NOT re-read the directory (save more grinding when command
  56. is RUN).  Use hidden 'S' gadget to re-read.
  57.  
  58.  
  59. TITLE BAR:
  60.  nnn/tttt  Time 00:00   R-0   Chip nnnnnn  Fast nnnnnnn  Total  nnnnnnnn
  61. ---------  ----------   ---   ------------------------------------------
  62. current      24 hr       Which              Memory availability
  63.   files/max    format      history item active
  64.  
  65. INITIAL DIRECTORY:
  66. Logs into ram: if run from WorkBench. Logs into Current Dir from CLI.
  67.  
  68. SIZING WINDOW:
  69. Normal AND 'hidden' gadget. Instantly shrink by clicking the open space
  70. below the title bar. Unshrink by clicking hanging space below the title in
  71. the tiny window.  Tiny window moves - remembers where it was.
  72.  
  73. DEVICE GADGETS: -> df0: df1: ... etc.
  74. LEFT mouse  = put this into S with immediate 'GET'.
  75. RIGHT mouse = put this into the D gadget.  [Patchable. See end of this doc]
  76.  
  77. FILEWINDOW GADGET:
  78. Click unselected file OR dir and it is "selected". Click a selected name to
  79. unselect it. Most actions need "selected" things to work.
  80.  
  81. NOTE: Any/all filenames AND/OR DIRS may be selected at once.
  82.       See "HIDDEN GADGETS" for a 'HOLD' feature in display.
  83.  
  84. SLIDER GADGET:
  85. Scroll filename window. If slider is filled, all files and directories are
  86. displayed.
  87.  
  88. /\ and \/:
  89.  LEFT mouse  = move 1 file in arrow direction
  90.  RIGHT mouse = move 1 SCREEN in arrow direction
  91.  
  92. MULTIPLE R GADGETS (HISTORY):
  93. 'R' holds a circular list of 10 strings. "R+ R-" scrolls them, and R#:n in
  94. title bar tells which one is in use. Startup looks for a file named Du.hist
  95. in the current directory, and if not found, in the S: directory. FIRST one
  96. found will be used to initialize the strings to = the first 10 lines of the
  97. file. If NEITHER found, all R gadgets will be empty.  The file is just
  98. lines in plain text, and anything over 10 lines will be ignored. A sample
  99. file is included.
  100.  
  101. History changes must be typed in AND <ENTER>ed while program waits for
  102. normal gadget activity to be permanent.  Remember, while commands are going
  103. on, the program only looks at gadget selection as an interrupt.  Changes
  104. made during activity, OR ended without <ENTER>ing will be TEMPORARY. Then,
  105. scrolling history +- will return last saved history for that item.
  106. Experiment with it.
  107.  
  108. STRING I/O GADGETS: ->  R  S  D
  109.  
  110. All are 255 characters long, but only part of string is seen. To view a
  111. long string, activate the gadget, and use arrows to move through it.
  112.  
  113. (R)un holds command line info for RUN f<ile>+R.  May also be used alone
  114.  OR as the lead item in a command with highlighted file as tail if RUN
  115.  R+f<ile> used. SEE ALSO HISTORY ABOVE AND THE 'R+ R-' button section.
  116.  
  117. (S)ource holds name of the current active device or dir. LEFT mouseclick a
  118.  device gadget and its goes here. CLICK, TYPE, AND <ENTER> in this gadget,
  119.  and your entry will be new current device or dir. If access to it fails,
  120.  the program returns to the last good active dir (or to ram: if that fails).
  121.  Click the RIGHT mousebutton IN the box and a PARENT command is done.
  122.  
  123. (D)estination holds the name of the path (filename in some cases) to use
  124.  for certain GADGET functions. Clicking the RIGHT mousebutton IN the box
  125.  backs the name up to its PARENT level (if any).
  126.  
  127. The Message area at the bottom is NOT a gadget.
  128.  
  129. HIDDEN GADGETS:
  130. Click LEFT mousebutton on LETTER 'R' or 'D' to blank contents of the box.
  131. Click LETTER 'S' for directory re-read of 'S'.
  132. RIGHT mouse on "S" toggles mode and color.
  133.   Black (original color) means re-reads always display from file number 1.
  134.   Green (same as device names) means re-reads try to display from the same
  135.   position as last one. [For comparing similar directories or seeing changes
  136.   in the middle of one.]
  137.  
  138. Finally, there is another unmarked gadget mentioned.
  139. Find it yourself (may encourage someone to read this stuff).
  140.  
  141.  
  142. +++++++++++++++
  143. BUTTON GADGETS: (alphabetically - sortof) Gadgets NOT alphabetic on screen
  144. +++++++++++++++
  145.  
  146.   COPY     (Multifile - consecutive)
  147.   ----
  148. Copy any/all selected file(s) to PATH in D (must be a valid device or dir).
  149. Multiple copy supported, copy to specific filename not supported. Checks
  150. PROTECT gadget setting.
  151.  LEFT mouse  = STOP if file status does not match PROTECT gadget.
  152.  RIGHT mouse = SKIP that file and go on.
  153.  
  154.  
  155.   COPYALL  (CONFIRMED) (Mass file/directory copy)
  156.   -------
  157. Copy entire dir/disk contents, matching tree structure on the fly.  Put
  158. base level source dir name in S and the base dest PATH in D and select
  159. COPYALL (and confirm). This copies EVERYTHING in S AND ITS SUBDIRECTORIES
  160. to D, creating directories as it goes. IF destination fills, you will have
  161. a chance to change disks and continue.
  162.  
  163.  Ex: Copy entire disk (like COPY df0: to df1: all)
  164.        type 'df0:' in S and 'df1:' in D and go.
  165.      Copy devs directory
  166.        Put 'df0:devs' in S and 'df1:devs' (existing OR NOT) in D, and
  167.        start. Creates (if needed) destination directory, copies all files,
  168.        creates df1:devs/printers (if needed) and copies all its files.
  169.  
  170. Specifically confirmed, DOES NOT check PROTECT setting.
  171.  
  172.   COPYif  (CONFIRMED)
  173.   ------
  174. Just like COPYALL, BUT with attention to ARC bit of source FILE's protection
  175. bits. If bit is CLEAR (file changed since last set) it WILL copy the file.
  176. If a DIRECTORY bit is SET it doesn't even go into that directory.
  177.  LEFT mouse  = SET source ARC bit after copy done
  178.  RIGHT mouse = DON'T mess with ARC bit
  179.  
  180.   DELDIR  (CONFIRMED)
  181.   ------
  182. DIRECTORY delete. To work, dir must be selected and EMPTY. ANY/ALL
  183. highlighted directories will be deleted if empty.
  184.  LEFT mouse  = stop if a directory doesn't delete.
  185.  RIGHT mouse = continues EVEN if a directory doesn't delete
  186.  
  187.   DELETE   (CONFIRMED) (Multifile - consecutive)
  188.   ------
  189. FILE delete. Any/all files currently highlighted will be deleted. Message
  190. area shows progress, and delete may be stopped by clicking left mouse
  191. button on any gadget (including filewindow).
  192.  
  193.   DSKCOPY  (CONFIRMED)
  194.   -------
  195. Diskcopy 'S' to 'D'  - BOTH MUST BE df0-df3.  Corrects date so DOS won't be
  196. confused.  IS Interruptible.
  197.  LEFT mouse  = NOVERIFY
  198.  RIGHT mouse = VERIFY
  199.  
  200.   DSKWIPE   (CONFIRMED)
  201.   -------
  202. QUICK WIPE OF disk in 'D'.  MUST BE df0-df3.  Writes fresh root block.
  203.  LEFT mouse  = NOVERIFY
  204.  RIGHT mouse = VERIFY
  205.  
  206.  
  207.   DO f+R  DO R+f   (Multifile - consecutive)
  208.   ------  ------
  209. RUN/EXECUTE command.
  210.  DO R+f executes the 'R' contents with selected items as a tails.
  211.  DO f+R executes selected items with the 'R' content as a tail.
  212.  If no item is selected, both try the R gadget alone.
  213. Uses DOS Execute (like typing a command at > prompt). Also whether command
  214. is RUN or executed depends on other things (more info in first section).
  215. This is NOT like script handler 'EXECUTE'.
  216.  
  217. *DOES* INCLUDE HIGHLIGHTED DIRECTORY NAMES IN THE ACTIONS
  218.  
  219.   EDIT     (Multifile - consecutive)
  220.   ----
  221. Start editor with selected FILEname(s) as tail(s). If no file selected,
  222. editor will be RUN with no file.  Expects editor named 'dme' in normal
  223. search path and uses the same Execute/Run logic as DO buttons (SEE
  224. PATCHING).
  225.  
  226.   FORMAT
  227.   ------
  228. FORMAT disk indicated in 'D'.  MUST BE df0-df3. Names disk "New" and uses
  229. current date.  DOES INSTALL as bootable. IS Interruptible.
  230.  LEFT mouse  = NOVERIFY
  231.  RIGHT mouse = VERIFY
  232.  
  233.   F+ F-
  234.   -----
  235. Change #files-per-directory handled by DU.
  236.  LEFT mouse  = increase 50
  237.  RIGHT mouse = decrease 50. (More files = more memory used.)
  238.  
  239.   GETDIR   (NO SUCH GADGET)
  240.   ------
  241. GETDIR by clicking the RIGHT mouse button over its name.
  242.  
  243.   HPRINT  HTYPE  PRINT  TYPE
  244.   ------  -----  -----  ----
  245. ASCII/HEX file view/print. Destination of PRINT/HPRINT selected with toggle
  246. gadget PRT: (See TOGGLES/FLAGS section). Multiple hardcopy runs interrupt
  247. the same way as other functions. To scroll back and forth in file during
  248. screen output, click left mouse down in upper or lower part of window, or
  249. use scroll bar. Click title bar to quit or interrupt an individual printout
  250. or display. Tabs expanded on 8 columns. NO color sequences or formfeeds.
  251. Line xx of xxx shown in the title bar.  For PRINT this is 256 byte blocks
  252. NOT lines.
  253.  
  254. NOTE:
  255.  If PRINT/HPRINT selected with RIGHT mouse, formfeed will be sent after
  256.  each file.
  257.  
  258.   INFO
  259.   ----
  260. LEFT mouse  = FREE space S and/or D
  261. RIGHT mouse = USED space S and/or D.  Both show volume name[s].
  262.  
  263.   INSTALL
  264.   -------
  265. INSTALL disk indicated in 'D'.  MUST BE df0-df3. Writes fresh boot block.
  266.  LEFT mouse  = NOVERIFY
  267.  RIGHT mouse = VERIFY
  268.  
  269.   MAKEDIR
  270.   -------
  271. Make dir named in the D gadget (if valid and not existing). If complete
  272. dev:path not given, dir will be made relative to the path in S. Check is
  273. made to insure you are not trying to create a directory with an already
  274. existing name (or over a file).
  275.  LEFT mouse  = DO re-read S when done
  276.  RIGHT mouse = DON'T re-read.
  277.  
  278.   MOVE     (Multifile - consecutive)
  279.   ----
  280. MOVE items to destination (must be path). Tries RENAME. If that fails, and
  281. 'item' is NOT a directory, tries copy-and-delete-source. DOES check state
  282. of the PROTECT gadget.
  283.  LEFT mouse  = STOP if item does not match PROTECT gadget status
  284.  RIGHT mouse = SKIP that item and go on.
  285.  
  286. *WARNING* - A bug in the ram-handler lets you rename a file in ram: to an
  287.  existing name in ram: without a DOS error 203 and leaves you 2 in the same
  288.  directory. Just so you will be aware, I didn't try to trap that.
  289.  (* vd0: also does that! *)
  290.  
  291.   OldNew
  292.   ------
  293. Tag files based on destination condition.
  294.  LEFT mouse  = tag files which DO exist at dest end (Old)
  295.  RIGHT mouse = tag files which DO NOT exist at dest end (New).
  296.  
  297.   PARENT
  298.   ------
  299. Click RIGHT mousebutton in 'S' or 'D' box for PARENT.
  300.  
  301.   ROOT
  302.   ----
  303. Back up to the root of the current S or D gadget. If this fails with 'S',
  304. return to the last good current directory (or ram: as a last resort).
  305.   LEFT mouse  = Get ROOT of 'S'
  306.   RIGHT mouse = Backup 'D' to its ROOT level
  307.  
  308.   RELABEL
  309.   -------
  310. Relabel disk in 'S' to NAME in 'D', both in memory and on disk. Internal.
  311. 'D' gadget cannot have ":" or "/" in it.
  312.  
  313.   RENAME
  314.   ------
  315. Rename FIRST selected file OR dir (alphabetically) to Name in the D gadget.
  316. Wherever practical, MOVE is faster.
  317.  LEFT mouse  = re-read directory (since it may be still be there)
  318.  RIGHT mouse = NO re-read (old dropped, new not added even if still there).
  319.  
  320.   TAGALL RETAG FLIPTAG UNTAG
  321.   ------ ----- ------- -----
  322. Mass tag operations on all items in a window.
  323. (In some DU's -> TAGALL = ALL   UNTAG = CLEAR)
  324.  
  325. TAGALL selects ALL items. RETAG after multifile operations reselects any
  326. items selected before (if they remain now). FLIPTAG reverses all tags.
  327. UNTAG clears all tags.
  328.  
  329.  LEFT mouse  = do with FILES.
  330.  RIGHT mouse = do with DIRECTORIES.
  331.  
  332.   SETNOTE
  333.   -------
  334. Set filenote of FIRST HIGHLIGHTED file OR dir. Current R gadget content
  335. will be used as comment.  To delete a comment, empty R gadget and SETNOTE
  336. (to null comment).
  337.  
  338.   SHONOTE
  339.   -------
  340. Show filenote (if any) of FIRST HIGHLIGHTED file. Filenote will be shown in
  341. the message area. If [-no comment-] appears, file has no filenote attached
  342. to it.
  343.  
  344.   SETPROT
  345.   -------
  346. Set protection bits on highlighted FILE(s) OR DIR(s).
  347.   LEFT mouse  = work this on FIRST item found highlighted.
  348.   RIGHT mouse = work this on ALL items highlighted.
  349.  
  350. R gadget must hold letter(s) of bits you want SET. Does NOT consider
  351. CURRENT condition of flags - you must include ALL letters you want set. To
  352. get current status, use SHOPROT. Order of letters does NOT matter. Letters
  353. not present will have their bits CLEARED.
  354.  
  355.  Protection bits are (UPPER or lower case o.k.):
  356.   A(rchive bit)           Currently RESET each time a file is changed
  357.   R(ead protect bit)      Ignored by DOS now
  358.   W(rite protect bit)     Ignored by DOS now
  359.   E(xecute protect bit)   Ignored by DOS now
  360.   D(elete protect bit)    Prevents deletion when SET
  361.  
  362.   SHOPROT
  363.   -------
  364. Shows protection bit status on highlighted file OR directory.
  365. Uses current R gadget, so be careful of History items.
  366.  LEFT mouse  = show NEXT highlighted (and unselect)
  367.  RIGHT mouse = scan quickly through ALL highlighted (and unselect)
  368.  
  369.   SHOWIFF
  370.   -------
  371. Picture display. INTERNAL - does NOT need any "Show" program. Works on
  372. most wellbehaved ILBM files. Based on UShow2.asm logic.
  373.  
  374.   ZAPALL
  375.   ------
  376. Mass directory-and-related-files delete. Works two ways.
  377.  
  378. 1) If a directory name IS highlighted when ZAPALL is selected, it assumes
  379.    you want to delete that directory AND ALL FILES AND SUBDIRECTORIES IN IT.
  380.  
  381. 2) If NO directory name highlighted, it assumes you want to delete CONTENT
  382.    of the directory (or device) in the S gadget, including ALL files and
  383.    subdirectories, BUT NOT directory itself. (This leaves an empty, but
  384.    existing, directory.
  385.  
  386. Example:
  387. 1) Delete all files in df1:devs (but not df1:devs itself). Put df1:devs
  388.    in S and go. This leaves an empty df1:devs as the S directory.
  389. 2) Delete its files AND IT, TOO. Put 'df1:' in S and select 'devs'
  390.    with one click. Then hit ZAPALL twice (once to select ZAPALL, once to
  391.    CONFIRM ZAPALL), and all the files and directories in 'devs' will be
  392.    deleted, then devs will be deleted (unless it is ASSIGNed to devs:).
  393.  
  394. Gives message area progress reports. Deletes files alphabetically backward,
  395. recursing into directories as encountered.  Watch and see.
  396.  
  397.   R+ R-
  398.   -----
  399. Scroll R history.  READ 'HISTORY' EXPLANATION.
  400.  LEFT mouse  = +
  401.  RIGHT mouse = -
  402.  
  403.   f->R  f->D
  404.   ----  ----
  405. Move FIRST highlighted file (OR directory) into indicated gadget.
  406.  RIGHT mouse on f->D = CONCAT the first item into D (with / if needed).
  407.  
  408.   R->S  R->D  etc.
  409.   ----  ----
  410. Copy current gadget contents around. If R involved, affected history item
  411. is updated. IF S involved, it is treated like a new entry.
  412.  
  413.   R<->S  etc.
  414.   -----
  415. Two-way swaps of gadget content. S<->D is the old SWAP command. If S is
  416. involved, it will be treated as though typed in fresh. If R gadget is
  417. involved, affected history item is updated.
  418.  
  419. +++++++++++++++++++++
  420. TOGGLE (FLAG) GADGETS
  421. +++++++++++++++++++++
  422.  
  423.   PROTECT/ERASE/REPLACE
  424.   ---------------------
  425. Indicates protection used for files at destination end of COPY and MOVE.
  426. (Not honored by COPYALL, COPYif, or ZAPALL, which must be confirmed.)
  427.  
  428.  1. PROTECT - Don't continue if same name file EXISTS at destination.
  429.  2. ERASE   - Don't care about file of same name at destination.
  430.  3. REPLACE - Don't continue UNLESS file of same name EXISTS at destination.
  431.  
  432.   DevNAME/VolNAME
  433.   ---------------
  434. Indicates what type of names S gadget will use.
  435.  
  436.  1. DevNAME -  df0:??  df1:?? etc. will be used.
  437.  2. VolNAME -  disk names (MyVol:??) will be picked up.
  438.  
  439. May be useful where one drive swaps are involved.
  440.  
  441. Drawback in VolNAME mode. ASSIGNed names like devs: can't be used. Program
  442. assumes you want Volume Name of the disk that ASSIGNed device is on and
  443. goes to the root expressed as volume name.
  444.  
  445.   SIZES/DATES
  446.   ===========
  447. Indicates what to display about files. Changes when hit.
  448.  
  449.  1. SIZES - byte file size will show.
  450.  2. DATES - creation dates will show.
  451.  
  452.  
  453.   SysDATE/OldDATE
  454.   ===============
  455. Select date to put on copied files.
  456.  
  457.  1. SysDATE - current system date goes on copies.
  458.  2. OldDATE - creation date of source file goes on copies.
  459.  
  460.   PRT: PAR: SER:
  461.   ==============
  462. Shows destination of PRINT/HPRINT gadgets. (See Patching.)
  463.  
  464.  = - = - = - = - = MOST PEOPLE - CUT HERE = - = - = - = - = - = - =
  465.  
  466.                    PATCHING [with NewZap]
  467.  
  468. Editor name:
  469.  Change only occurrance of 'dme' (no quotes) to a null terminated string of
  470.  your choice. Space for up to a 10 character name.
  471.  
  472. Default PRINT/HPRINT output device:
  473.  Find only occurrance of PRT:<0>PAR:<0>SER:<0>.  The first is default
  474.  on startup. Swap order to your preferences, remembering to keep them 4
  475.  characters long plus nullterm.
  476.  
  477. Devices - df0: df1: ... etc.:
  478.  If you have a different named device (like nv0: or dh2: or something), you
  479.  can find the only place where the names appear in an ordered set of null
  480.  terminated strings.  THIS IS BOTH GADGET TEXT AND TEXT USED TO TRY TO LOCK
  481.  THE DEVICE. Rearrange or change what's there (with up to 4 letters each).
  482.  Whatever you put into the ram: (last) gadget will be what is logged into
  483.  first from WorkBench.  What appears in each gadget will be what the program
  484.  tries to access and CurrentDir to when it is selected. Be careful.
  485.